package com.sjgl.esdn.service;

import com.sjgl.esdn.domain.entity.PwdReset;
import com.sjgl.esdn.domain.entity.User;

import java.util.Date;
import java.util.List;

/**
 * @author 虾米
 */
public interface UserManageService {

    /**
     * 获取所有用户列表
     * @return
     */
    List<User> getUserList(Long userId);

    /**
     * 根据部门名称获取该部门用户
     * @param deptName
     * @return
     */
    List<User> getUserListByDeptName(String deptName);


    /**
     * 根据关键字查询用户信息
     * @param keyword
     * @param userId
     * @return
     */
    List<User> selectByKeyword(String keyword,Long userId);

    /**
     * 获取要注册审批的用户列表
     * @param userId
     * @return
     */
    List<User> showApproval(Long userId);

    /**
     * 注册审批
     * @param userId
     * @param oprtId
     * @param time
     * @return
     */
    int approveRegister(Long userId,Long oprtId,Date time);

    /**
     * 获取需要重置密码的用户列表
     * @return
     */
    List<PwdReset> showResetList(Long userId);


    /**
     * 重置用户密码
     * @param oprtId
     * @param userId
     * @param time
     * @return
     */
    int resetPassword(Long userId,Long oprtId, Date time);

    /**
     * 审批通过重置密码
     * @param userId
     * @param oprtId
     * @param time
     * @return
     */
    int updateStatus(Long userId,Long oprtId, Date time);

    /**
     * 审批拒绝重置密码
     */
    int rejectStatus(Long userId,Long oprtId, Date time);

    /**
     * 修改用户职级
     * @param userId
     * @param deptName
     * @param userType
     * @param oprtId
     * @param time
     * @return
     */
    int modifyUserType(Long userId,String deptName,int userType,Long oprtId,Date time);

    /**
     * 注销用户账号
     * @param userId
     * @param oprtId
     * @param time
     * @return
     */
    int discardUser(Long userId,Long oprtId,Date time);


}
